/*
 Problem Description
话说现在猪肉价格这么贵，著名的ACBoy 0068 也开始了养猪生活。说来也奇怪，他养的猪一出生第二天开始就能每天中午生一只小猪，而且生下来的竟然都是母猪。
不过光生小猪也不行，0068采用了一个很奇特的办法来管理他的养猪场：
对于每头刚出生的小猪，在他生下第二头小猪后立马被杀掉，卖到超市里。
假设在创业的第一天，0068只买了一头刚出生的小猪，请问，在第N天晚上，0068的养猪场里还存有多少头猪？
 

Input
测试数据的第一行包含有一个正整数T，代表测试数据的个数。接下来有T组测试，每组测试数据占一行，分别有一个正整数N代表0068创业的第N天。(0<N<20)
 

Output
对于每组数据，请在一行里输出第N天晚上养猪场里猪的数目。
 

Sample Input
2
2
3
 

Sample Output
2
3
----------------------------------------------------
分析：第一天1头
第二天1*2头
第三天就是2*2=4 但是减去第一天的1头就是3头
第四天就是3*2头 但是减去第二天的两头（其中一头在第三天时已经除去）就是5头
1:1
2:1*2-0=2
3:2*2-1=3
4:3*2-(2-1)=5
5:5*2-(3-1)=8
6:8*2-(5-2)=13
7:13*2-(8-3)=21
8:21*2-(13-5)=34
递推公式：F[n]=F[n-1]*2-F[n-2]+F[n-4](先前已经被卖出的小猪的数)
公式2：f[n]=f[n-1]*2-f[n-3]
公式3：f[i] = f[i-1]+f[i-2];

其中f[i-1]是上一天有的母猪数

而因为生了第二只小猪要被杀，意味着第二次生的小猪和被杀的小猪是均衡的，
所以只要在i-1天的基础上再加上i-1天的上一天也就是i-2天的小猪数，
它们是第一次生小猪，就能得到现在所含有的小猪数量
 */
package com.yuan.algorithms.acm201505;

import java.util.Scanner;

public class HD2106母猪的故事 {

	public static void main(String[] args) {
		int[] arr = new int[21];
		arr[1] = 1;arr[2] = 2;arr[3]=3;arr[4]=5;
		for (int i = 5; i < arr.length; i++) {
			arr[i] = arr[i-1] * 2 - arr[i-2] + arr[i-4];
			//System.out.println(arr[i]);
		}
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			int m = sc.nextInt();
			while(m-->0) {
				int k = sc.nextInt();
				System.out.println(arr[k]);
			}
		}
	}

}
